This invention relates to a server providing a client access to messages via standard internet e-mail protocols. Still more particularly, this invention relates to a system by which a server responds to polling by a client to determine whether a user has new messages in an e-mail system.
Today, Electronic mail (e-mail) is a popular form of communication. E-mail is messages that are transmitted between users via computers connected by the Internet or some other network. E-mail messages are messages that may contain data files, display data, executable programs, or any other information that can be represented in digital form.
User access to e-mail is typically provided in the following manner. A server, which is a computer system that is connected to other servers via the Internet, receives messages for a user that have an e-mail address specifying the server and the user. The messages for each user are then stored by the server in a memory and given a unique identification.
When a user wants to retrieve e-mail received by the server for the user, the user establishes a connection to the server with a client which is a computer or other device, such as a wireless telephone or alphanumeric pager. For a client that is a computer, the connection is typically a telephone call over a telephone line via a modem in the client. However, sometimes the communication link may be over Local Area Network (LAN), or wireless LAN. The client and server then communicate using some known protocol, such as TCP/IP, to transfer data between the two computers. In order to provide e-mail to the user, an e-mail protocol is used in TCP/IP communications to transfer e-mail data between the client and server. The predominant e-mail retrieval protocols currently in use are POP3 and IMAP4. Client applications that support these protocols are available for most client computers and supporting these protocols is becoming increasingly important for all messaging systems including proprietary LAN based messaging systems, and voice messaging systems.
In order to retrieve messages for a user, the client establishes an e-mail session by providing authentication credentials, such as a user identification and a password, to the server in the e-mail protocol. If the authentication credentials are correct, a retrieval session with the server is established. In order to get new mail, the client interrogates the server to determine whether the server is storing any new messages for the user. The method of interrogation depends on the e-mail protocol used. For example, an interrogation in POP3 includes the client requesting a list of message identifications of messages being stored for the user. The identifications are then compared to a list of identifications on the client and if any new messages exist, the new messages are retrieved by the client.
It is a problem that many users repeatedly establish a connection with the server to determine whether new messages exist. Typically, the software application executed by the client to retrieve e-mail for a user is programmed to establish a connection with the server and poll for new e-mail messages every few minutes while the user is logged in or using the client computer. Therefore, a great amount of the computational time of the server is spent generating responses to the polling queries transmitted by the clients. This limits the number of clients that a server may serve over a given period of time. The problem is exacerbated in an arrangement in which the e-mail retrieval protocol is added to an existing messaging system either as an add-on software module or as an intermediary server. There is a need in the art for a system that reduces the computational load for a server that is responding to new message polling by clients.
The above and other problems are solved and an advance in the art is made by the provision of a system by which a server identifies polling queries in a retrieval session by a client and handles the retrieval session differently than normal sessions. A first advantage of this invention is that the system reduces the computational load of a server responding to queries polling for new e-mail messages. The server can then service more clients in the same amount of time. A second advantage of this invention is that the client e-mail software does not have to be changed in order for the server to use this system to respond to polling queries during retrieval sessions.
The system for identifying and handling polling queries is software that is executed by either a server computer directly providing e-mail service to users or an intermediary server providing an e-mail protocol to some other messaging system. The software of this system maintains a cache of user information which is used to generate responses to queries sent by a client during retrieval sessions when the user does not have new mail. The cache of user information may only contain users that have recently polled for new mail, all users, or users that frequently poll the server.
The cache is then used in the following manner to respond to a retrieval session by a client trying to determine whether a user has received new mail. The server receives an interrogation query from the client. The cache maintained by the software is read for user information that responds to the query. The response read from the cache is then transmitted to the client.
One preferred exemplary embodiment of the above system operates in the following manner. When a client establishes a connection with the server, authentication credentials, such as a user name and a password, are transmitted to the server. If the authentication credentials are verified by the server, the server uses the user name to determine whether information for the user is stored in a memory cache maintained by the software. If information about the user is not in the cache, a conventional retrieval session is established.
If information about the user is stored in the cache, the server may determine whether the user information in the cache is current. One process for determining whether the information is current is comparing a time stamp of the last conventional retrieval session with a time of last change in a user mailbox. It is also possible to eliminate this step by removing user information when a new message is added to the mailbox of the user.
If the information is current, the e-mail retrieval session is assumed to be a retrieval session and is handled in the following manner. The client transmits a message to the server with a request for information. The server receives the message and reads the information in the cache to respond to the request. If the server reads the requested information from the cache, the information is transmitted to the client. If the information is not stored in the cache, a normal retrieval session is established in which the server must generate the response by reading the e-mail message database.